package version1;

import javafx.scene.effect.ImageInput;

import javax.imageio.stream.ImageInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * 封装
 * Mysql封装工具类 连接对应数据库
 * Mysql与Oracle具备 url,username,password
 * 定义数据库公用的定义为属性
 * 2.getParam(String 路径)获取参数方法：链接成功数据库操作
 * 2.1外置文件  url  账号  密码  统一配置文件 形式 键值对
 * bd_mysql.properties
 */
public class Mysql {
    //定义数据库基本属性：私有化
    private static String url;
    private static String username;
    private static String password;
    //2.定义方法
    public static void getParam(String fileName) throws IOException {

      //2.1读取db_mysql.properties文件--Properties建和值
        Properties p=new Properties();
        //2.1补充 Properties类提供load()方法
        //Mysql.class 表示当前类的Class对象
        //getClassLoader() 获取当前类的加载器【加载器：根据路径执行配置文件】
        //getClassLoader() 获取当前类的加载器 加载器 根据路径执行配置文件
        //理解 图书馆--mysql 数据区域 --找
        //getResourceAsStream() 通过类的加载器 找到对应文件配合读取
        //理解 图书馆  mysql书记区域  找管理员  找到对应 db_mysql.properties 书籍
        InputStream fis=
                Mysql.class.getClassLoader().getResourceAsStream(fileName);
        p.load(fis);
        //2.2从db_mysql.properties读取的键值对
        //Properties类提供方法getProperty（“建”）  通过建找值
        //复制给当前sql的数据库信息
        url=p.getProperty("url");
        username=p.getProperty("username");
        password=p.getProperty("password");
        //2.3打桩
        System.out.println("数据库基本信息："+url+username+password);
    }
    //3.测试工具类--链接成功数据库
    public static void main(String[] args) throws IOException, SQLException {
        Mysql.getParam("db_mysql.properties");
        //作业2 参考sql类  编写Oracle类
        //目的  工具类 链接成功不同的数据库 外置文件基本信息配置不同
        //作业3.增加一条操作  mi 库  book  擦汗讯
        //JDBC:connection Statement        ResultSet
        //1.创建数据库链接操作
        Connection con=
                DriverManager.getConnection(url,username,password);

        Statement st =con.createStatement();
        //增删改 executeUpdate() 返回成功几条激流
        //2.执行sql,

        String sql1="select * from book";
        ResultSet rs=st.executeQuery(sql1);
        while(rs.next()){
            int id=rs.getInt("id");
            String author=rs.getString("author");
            String name=rs.getString("name");
            int price=rs.getInt("price");
            String date=rs.getString("date");
            int number=rs.getInt("number");
            String discount=rs.getString("discount");
            System.out.println("book表的所有数据："+id+author+name+price+date+number+discount);
        }
        String sql=
                "insert into book values(6,'余华'，'活着','2023年7月',90,'否')";
        rs.close(); st.close(); con.close();
    }
}
